Automated reservation and appointment system using interactive voice recognition

ABSTRACT

Automatically making appointments and reservations for requestors according to a protocol for querying service providers and other types of entities. A system server receives a request for an appointment or reservation either for a category of service or a particular entity. Based upon the request, the system server retrieves a protocol for making the appointment or reservation, and possibly to identify entities to contact. The protocol uses concepts to represent information required to make the appointment or reservation. The system server automatically queries entities, optionally using concept-to-audio conversion and voice recognition technology, to make the appointment or reservation, and to provide confirmation to the requester.

REFERENCE TO RELATED APPLICATIONS

[0001] The present application is related to the following applications,all of which are incorporated herein by reference as if fully set forth:U.S. provisional patent application of Brian C. Roundtree, Ser. No.60/182,330, entitled “Web-Based Personal Assistance CommunicationMethod,” and filed February 14, 2000; U.S. patent application of BrianC. Roundtree, entitled “Web-Based Personal Assistance CommunicationSystem,” and filed Jul. 17, 2000; U.S. patent application of Brian C.Roundtree, entitled “Web-Based Personal Assistance CommunicationMethod,” and filed Jul. 17, 2000; U.S. patent application of Brian C.Roundtree, entitled “Web-Based Personal Assistance User InterfaceSystem,” and filed Jul. 17, 2000; U.S. patent application of Brian C.Roundtree, entitled “Voice-to-Concept Conversion System,” and filed onSep. 8, 2000; U.S. patent application of Craig G. Eisler and Brian C.Roundtree, entitled “On-Line Service Provider Sign-Up System,” and filedon Sep. 8, 2000; U.S. patent application of Keldon V. Rush and Brian C.Roundtree, entitled “System for Converting Textual Concepts toInteractive Audio and Audio/Visual Presentations,” and filed on Sep. 8,2000; U.S. patent application of Brian C. Roundtree, entitled “Systemfor Obtaining Service-Related Information for Local Interactive WirelessDevices,” and filed on Sep. 8, 2000; U.S. patent application ofCristiano L S Pierry and Brian C. Roundtree, entitled “System for SecureElectronic Transactions Using Unique Identifiers for Order-RelatedInformation,” and filed on Sep. 8, 2000; U.S. patent application ofBrian C. Roundtree, entitled “Airline Flight Departure and ArrivalPrediction Based Upon Historical and Real-Time Data,” and filed on samedate herewith; U.S. patent application of Craig G. Eisler and Brian C.Roundtree, entitled “Hypertext Concept Notation for DynamicallyConstructing a Sentence to Respond to a User Request,” and filed on samedate herewith; U.S. patent application of Craig G. Eisler and Brian C.Roundtree, entitled “Assembling Personal Information of a Target PersonBased Upon Third-Party Information and a Request Purpose,” and filed onsame date herewith; U.S. patent application of Craig G. Eisler and BrianC. Roundtree, entitled “Rendering Data Using Rendering InstructionsBased Upon Concept Identifiers for the Data,” and filed on same dateherewith; and U.S. patent application of Cristiano L S Pierry and BrianC. Roundtree, entitled “Automated Alert State Change of User Devices forTime-Based and Location-Based Events,” and filed on same date herewith.

FIELD OF THE INVENTION

[0002] The present invention relates to an apparatus and method forautomatically making reservations or appointments using interactivevoice recognition techniques.

BACKGROUND OF THE INVENTION

[0003] Wireless devices, such as cell phones and personal digitalassistants (PDAs), are becoming more commonly used and have thepotential for communication over the Internet in addition to traditionaltelephone networks. The Internet communication with these devicespermits users to obtain services and other related information usingwireless communication with the devices. For example, a user candownload content from the world wide web on the Internet using a cellphone and have the information displayed on the display panel of thecell phone. Therefore, in addition to using the cell phone for voicecommunication, the user can obtain content over the Internet concerning,for example, services available from service providers. The user canalso execute transactions over the Internet using the cell phone orother wireless device. For example, the user can make electronicpurchases for good or services, analogous to how users can maketransactions over the Internet using a personal computer having aconnection to the Internet.

[0004] Many wireless devices, however, provide for limited ways to enterinformation for communications over the Internet. Cell phones, forexample, typically have only a key pad in addition to a microphone,making entry of textual information slow and inconvenient. Otherdevices, such as PDAs, may have even more limited ways to enter textualinformation. Therefore, these devices do not typically provide the sameease of interacting over the Internet as provided by a personal computerhaving a keyboard and cursor-control device for easy and convenient“point and click” selection of content displayed in web pages. Thesedevices may also be limited in how information can be displayed.Wireline devices, such as conventional phones, provide for even morelimited interaction over the Internet.

[0005] Also, when using these user devices to execute the transactions,the information available through the transactions is often limited. Auser request for content often results in generic content potentiallyapplicable to many situations other than the particular situation of theuser. For example, a user may want information about purchasing giftsfor others or information about services available such astravel-related information. In response to a request for suchinformation, the user may be provided with information about gifts forgeneric categories and other information for general travel-relatedservices. Without targeting the information to the user's situation, theinformation may not have much value to the user.

[0006] Accordingly, a need exists for increased options and versatilityfor user's having wireless devices or wireline devices to interact andmake transactions over the Internet, for increased versatility torequest service or make transactions with service providers, and forobtaining more information targeted to a user's particular situation orrequest.

SUMMARY OF THE INVENTION

[0007] A method and apparatus consistent with the present inventionprovide automated reservations and appointments. A request for an orderfor service is received from a requester, and service information isalso received for use in fulfilling the order. A protocol is selectedfor use in querying an entity based upon the service information, andthe entity is queried according to the protocol. Based upon responses tothe querying, the ordered service is provided to the requester by makingthe appointment or reservation, or possibly by informing the requestorthat the requested service is not available and offering options foralternative service.

BRIEF DESCRIPTION OF THE DRAWINGS

[0008] The accompanying drawings are incorporated in and constitute apart of this specification and, together with the description, explainthe advantages and principles of the invention. In the drawings,

[0009]FIG. 1 is a diagram of a system for processing requests forservice;

[0010]FIG. 2 is a diagram of a network for communicating with wirelessand wireline devices and service providers to process requests forservice;

[0011]FIG. 3 is a diagram of exemplary components of a server forprocessing requests for service;

[0012]FIG. 4 is a diagram of exemplary components of a wireless device;and

[0013]FIGS. 5 and 6 are a flow chart of a method for processing aservice order for automatically making a reservation or appointment.

DETAILED DESCRIPTION Introduction

[0014] Embodiments consistent with the present invention provide variousfeatures for a web-based electronic personal assistant, as described inthe web-based personal assistance applications identified above. Theelectronic personal assistant is implemented with a system server thatthe receives requests from users through wireless or wireline devicesand processes the requests in order to provide the user with requestedservice or information. These features permit the user to interact withthe system server in a variety of ways such as through a display on thedevice, a keyboard or keypad, or through voice interaction. The systemserver can present information to the user in a variety of ways as well,such as through audio communication or through information presented ona display with, for example, textual information, screens, or web pagespresented with HyperText Markup Language (HTML).

[0015] The requests, as explained in the web-based personal assistanceapplications identified above, can include any request for service orinformation. For example, a user may request a meeting, and in responsethe system server queries the user to obtain information required toarrange the meeting and then automatically makes the arrangements. Asanother example, a user may request information concerning services in aparticular geographic location or based upon other parameters, and thesystem server can query the user to determine the type of informationrequested, such as particular types of retail establishments, andprovide the information to the user. As another example, a user mayrequest to purchase goods or services, or make reservations forservices, and in response the system server queries the user todetermine the type of goods or services desired as well as otherinformation such as a desired price. Based upon that information, thesystem server automatically makes the purchase for the user. For thereservations example, the system server can query the user to determineinformation required to make the reservations for the user. For anyrequest, the system server can access user preferences to obtaininformation required or useful to process the request, such as theuser's credit card information and shipping address.

[0016] In addition, the system server can automatically notify the userof particular information. The system server typically maintains adatabase of preferences for the users in order to help process therequests. It also maintains a concept database and uses the concepts inorder to retrieve and construct queries, such as text fragments, for theuser. The use of only text fragments, for example, saves transmissiontime in comparison to transmission of graphical information over anetwork; alternatively, graphics can be used in addition to the textfragments.

[0017] Based upon the type of request, and potentially user preferences,the system server selects the appropriate queries from the conceptdatabase to obtain information to process the request. Upon completionof the processing, the system server can present to the user a sentenceconstructed from the related concepts in order to confirm the request.It can also use the sentence to document the request, retrieve theappropriate resources for it, and otherwise fulfill the request. Thisprocess, and the use of these concepts and the structure for a conceptdatabase, are further described in the web-based personal assistanceapplications identified above.

[0018] The system server can also cross-reference the concept databasewith a service provider database. In order to fulfill requests, thesystem server can access a database identifying available serviceproviders for the request. At the end of each string of concepts in theconcept database, that database can specify a link or pointer to therelevant service providers in the service provider database. Forexample, if the request is for a meeting, once the system server has allthe relevant information as constructed from the concepts, the conceptfor the location of the meeting can include a pointer or link to theestablishments proximate the location and available to provide food forthe meeting. Therefore, information for relevant service providers canbe associated with the appropriate concepts in the concept database.

Request Processing

[0019]FIG. 1 is a diagram of a system for fulfilling a request forservice. The system includes a system server 10 for processing a requesttransmitted from a requestor 12 through a network 14 such as theInternet or other wireline or wireless network. System server 10includes several software modules for processing the request fromrequestor 12. A communicator module 16 manages an interface for thecommunications with requester 12 over network 14. Communicator module 16receives the request and provides necessary formatting and otherprocessing for transmitting it to a planner module 22.

[0020] Planner module 22 interacts with a service provider module 24 inorder to obtain the resources for fulfilling the request. In particular,service provider module 24 interacts over a network 30, such as theInternet or a phone network, with one or more service providers 32 inorder to obtain services to fulfill the request. Service provider module24 provides for communication and data conversion for the interaction,while planner module 22 manages processing of the request and interactswith various databases for processing the request. A private credit cardservice module 28 can provide for secure order processing of the requestto help safeguard users' personal information such as credit cardnumbers.

[0021] Once the planner module 22 has obtained the resources for therequest, it communicates information to fulfill the request to anexecutor module 18. Executor module 18 includes a pending plan database20 for storing and managing resources and other information to fulfillthe request. Executor module 18 thus communicates back over network 14with requester 12 to provide confirmation of the request and also toexecute the request.

[0022] A learning module 26 can provide for fine-tuning plan data withina database 34 in order to more efficiently process requests,particularly from the same requestor. Other databases include a database36 storing financial data accessed by executor module 18, and a database38 storing personal data accessed by executor module 18 and plannermodule 22. The personal data can include an account for each user havinga profile and preferences for the users, and the information can beindexed by a particular user identifier such as a phone number or code.

[0023] Table 1 illustrates a user account. As shown, the user accountscan include users' preferences for a wide variety of information such asfor travel, dining, and other types of service providers. The userpreferences can be continually updated and refined over time as thesystem server gathers more information concerning the user, and thesystem server can optionally use learning models for the refinements anduse the preferences to make “smart choices” in processing users'requests. The information can be stored in a variety of ways such as ina relational database or with name-value pairs in Extensible MarkupLanguage (XML). TABLE 1 user 1 identifier data contact name, addressprofile user 1 characteristics hotel information user 1 hotelpreferences airline information user 1 airline preferences rental carinformation user 1 rental car preferences restaurant information user 1restaurant preferences service provider preferences user 1 serviceprovider preferences other category user 1 preferences for the category

[0024] Processing to fulfill the request is further explained in theweb-based personal assistance applications identified above.

Network

[0025]FIG. 2 is a diagram of an exemplary network 50 illustratinginteraction for receiving and processing requests from users such asrequester 12. It illustrates how the system can receive requests throughwireless and wireline transmission over conventional phone and cellularnetworks as well as the Internet or other computer networks. A requestortypically makes a request from a wireless or wireline device. Thewireless devices include any device capable of wireless electroniccommunication and examples include the following: cellular phones; PDAswith wireless network access; wireless Internet appliances; personalcomputers (including desktop, laptop, notebook, and others) withwireless network access; and personal computers with microphones,speakers, and circuitry for permitting wireless phone calls. Thewireline devices include any device capable of electronic wirelinecommunication and examples include the following: conventional phones;PDAs with wireline network access; Internet appliances; personalcomputers (including desktop, laptop, notebook, and others) withwireline network access; and personal computers with microphones,speakers, and circuitry for permitting wireline phone calls.

[0026] A wireless device 52, for example, can interact through wirelesstransmission with a base station 56 for communication over a personalcommunication system (PCS) 58. A request may also be made from awireline device 54 communicating over a public switched telephonenetwork (PSN) 60. Systems for wireless and wireline communication,includes a PCS and PSN, are known in the art.

[0027] Communications through networks 58 and 60 are transmitted througha gateway 62 and potentially a buffer 64 to a speech processor 66 forperforming processing of audio or particular types of communications,such as for voice-to-text conversion. Also, the communication may occurdirectly from gateway 62 to an interface server 68. Interface server 68controls gateway 62, and it provides an interface between a systemserver 76 and gateway 62, speech processor 66, and the world wide web70.

[0028] System server 76 corresponds with system server 10 in FIG. 1 toprocess user requests. Interface server 68 provides the data conversionand processing for transferring data to and from system server 76. Asshown by the dashed line, speech processor 66 and interface server 68can be implemented with the same physical machine or with differentmachines. Also, system server 76 can be implemented with one or morephysical machines and can also be programmed to implement the functionsof speech processor 66 and interface server 68.

[0029] In addition to receiving requests over networks 58 and 60,interface server 68 can receive a request over the world wide web 70. Inparticular, a wireless device 74 can interact through wirelesscommunication with a PCS 72, which communicates over the world wide web70 through a communication protocol such as, for example, the wirelessapplication protocol (WAP). The WAP for communications over the Internetis known in the art.

[0030] System server 76 can communicate over the world wide web 78 withvarious service provides 80 to fulfill requests. In addition, systemserver 76 can communicate with credit card processing or other financialnetworks 86 in order to provide financial processing for fulfillingrequests. Networks 86 can include known networks, including bankingnetworks, for processing credit card transactions. As shown, serviceproviders 80 and financial networks 86 can also send and receivecommunications through a PCS 82 and PSN 84.

[0031] System server 76 can communicate directly over the world wide web78 to a gateway 88 and base station 90 in order to provide communicationdirectly with a wireless device 92. Also as shown, communications canoccur from system server 76 back through interface server 68 and speechprocessor 66 to the end user wireless devices 52 and 74 and wirelinedevice 54; system server 76 can also communicate directly with gateway62, as shown. Those communications can provide, for example,confirmation of a request or information responsive to a request.

[0032] Network 50 illustrates fundamental hardware components forcommunications over the various types of networks shown. As known in theart, network 50 can include additional components and can also includecomponents for providing services known in the art with respect to phonecalls. For example, it can include a caller ID service to provide systemserver 76 with the phone number of the user's wireless or wirelinedevice originating a communication. Also, network 50 can include othermeans for communication of data such as through satellite transmission.For transmission over the Internet, network 50 can use TransmissionControl Protocol/Internet Protocol (TCP/IP) or other protocols.

Server Components

[0033]FIG. 3 depicts a server 100 illustrating exemplary hardwarecomponents of system server 10 and other machines used by the system,such as speech processor 66 and interface server 68. Server 100 includesa connection with a network 116 such as the Internet or other type ofcomputer or phone networks, which may correspond with the networks shownin FIGS. 1 and 2. Server 100 typically includes a memory 102, asecondary storage device 110, a processor 112, an input device 114, adisplay device 108, and an output device 106.

[0034] Memory 102 may include random access memory (RAM) or similartypes of memory, and it may store one or more applications 104 forexecution by processor 112. Applications 104 may correspond withsoftware modules to perform processing for the functions describedbelow. Secondary storage device 110 may include a hard disk drive,floppy disk drive, CD-ROM drive, or other types of non-volatile datastorage, and it may correspond with the various databases shown inFIG. 1. Processor 112 may execute applications or programs stored inmemory 102 or secondary storage 110, or received from the Internet orother network 116. Input device 114 may include any device for enteringinformation into server 100, such as a keyboard, key pad, cursor-controldevice, touch-screen (possibly with a stylus), or microphone. Displaydevice 108 may include any type of device for presenting visualinformation such as, for example, a computer monitor, flat-screendisplay, or display panel. Output device 106 may include any type ofdevice for presenting a hard copy of information, such as a printer, andother types of output devices include speakers or any device forproviding information in audio form. Server 100 can possibly includemultiple input devices, output devices, and display devices.

[0035] Although server 100 is depicted with various components, oneskilled in the art will appreciate that this server can containadditional or different components. In addition, although aspects of animplementation consistent with the present invention are described asbeing stored in memory, one skilled in the art will appreciate thatthese aspects can also be stored on or read from other types of computerprogram products or computer-readable media, such as secondary storagedevices, including hard disks, floppy disks, or CD-ROM; a carrier wavefrom the Internet or other network; or other forms of RAM or ROM. Thecomputer-readable media may include instructions for controlling server100 to perform a particular method.

Wireless Device Components

[0036]FIG. 4 illustrates exemplary hardware components of a wirelessdevice 120, which may correspond with the exemplary wireless devicesidentified above. Wireless device 120 typically includes a memory 122, asecondary storage device 130, a processor 132, an input device 134, adisplay device 128, an output device 126, a transmitter/receiver 136,and a short range transmitter/receiver 138.

[0037] Memory 122 may include RAM or similar types of memory, and it maystore one or more applications 124 for execution by processor 132.Applications 124 may correspond with software modules to performprocessing for the functions described below, and they may also includeweb browser programs for retrieving and displaying content from theInternet. Secondary storage device 130 may include a hard disk drive,floppy disk drive, CD-ROM drive, or other types of non-volatile datastorage such as a ROM. Processor 132 may execute applications orprograms stored in memory 122 or secondary storage 130. Input device 134may include any device for entering information into wireless device120, such as a keyboard, key pad, cursor-control device, touch-screen(possibly with a stylus), or microphone. Wireless device 120 can includemultiple input devices; for example, it can include both a microphoneand key pad for a cell phone. Display device 128 may include any type ofdevice for presenting visual information such as, for example, acomputer monitor, flat-screen display, or display panel. Output device126 typically includes a speaker for providing information in audioform. It can also include a device for providing a hard copy ofinformation such as a printer, or provide a port for a connection to aprinter. Wireless device 120 can possibly include multiple inputdevices, output devices, and display devices.

[0038] Transmitter/receiver 136 provides for wireless communication withphone networks or computer networks such as is shown in FIGS. 1 and 2.Transmitter/receiver 136 can be implemented with known RF transmittersand receivers for providing cellular transmission between wirelessdevice 120 and base stations such as base stations 56 and 90, or it canbe implemented with a wireless transmitter/receiver for other types ofcommunication such as a satellite transmission.

[0039] Short range transmitter/receiver 138 provides for wireless shortrange communication with other wireless devices, and it can beimplemented with transmitters and receivers that operate according tothe IEEE standard 802.11 for local wireless networks or according to thestandard referred to as the Bluetooth™ technology for direct wirelesscommunication between local interactive wireless devices; thattechnology is explained in, for example, the Specification of theBluetooth System, Core, v1.0 B, Dec. 1, 1999 and the Specification ofthe Bluetooth System, Profiles, v1.0 B, Dec. 1, 1999, both of which areincorporated herein by reference.

[0040] In addition, even if a wireless device does not contain shortrange transmitter/receiver 138, technology exists to obtain anapproximate geographic location of certain wireless devices. Inparticular, using multiple base stations the signal from a cellularphone, for example, can be triangulated in order to obtain anapproximate geographic location of the cellular phone, including anindication of its vertical (altitude) location.

[0041] Although wireless device 120 is depicted with various components,one skilled in the art will appreciate that this wireless device cancontain additional or different components. In addition, althoughaspects of an implementation consistent with the present invention aredescribed as being stored in memory, one skilled in the art willappreciate that these aspects can also be stored on or read from othertypes of computer program products or computer-readable media, such assecondary storage devices, including hard disks, floppy disks, orCD-ROM; a carrier wave from the Internet or other network; or otherforms of RAM or ROM. The computer-readable media may includeinstructions for controlling wireless device 120 to perform a particularmethod.

[0042] Exemplary hardware components for wireline devices, such as theexamples provided above, can include the same components as wirelessdevice 120 except without the transmitter/receiver 136 and the shortrange transmitter/receiver 138.

Automated Reservation and Appointment System

[0043] Users can submit requests for service, meaning a request for anappointment or a reservation. The request can specify a particularentity or a category of service. In response, the system serverautomatically contacts one or more entities and attempts to make theappointment or reservation, and provides confirmation to the user. Theterm “entity” refers to service providers and/or individuals. The systemserver can execute protocols using concepts to represent portions of therequest, and the use of concepts is described in the relatedapplications identified above. Through concept-to-audio conversion, thesystem server can query entities using the concepts, and convert voiceresponses into related concepts using voice-to-concept conversion.Concept-to-audio and voice-to-concept conversion techniques aredescribed in the related applications identified above. Using phonecommunication, for example, these voice conversion and recognitionfeatures can be used according to various protocols to make theappointment or reservation.

[0044] As an example, the user may request a reservation with aparticular restaurant. In response, the system server retrieves aprotocol for making a reservation with that restaurant, contacts arepresentative of the restaurant through a phone call, and queries therepresentative through concept-to-audio conversion. The system serverreceives voice responses to the querying, converts them to correspondingconcepts, and continues the process until the reservation is made or itdetermines that the reservation is not available. If it is notavailable, the system server can query the representative to obtainalternate times available. The system server then provides confirmationto the user (requestor) of the reservation or can provide alternatetimes for a requested reservation time that was not available.

[0045] Instead of specifying a particular restaurant, for example, auser can specify a request for a restaurant reservation for a particularcategory of restaurants and potentially a location. In response, thesystem server retrieves a protocol that identifies one or morerestaurants to contact based upon the category and possibly otherinformation such as the user's preferences as stored in personal data38. The system server executes the querying process according to theprotocol to make a reservation with one of the restaurants and providesconfirmation to the user.

[0046] These examples are provided for illustrative purposes only. Thesystem server can automatically make appointments or reservations forany category of service provider, or other entity, for any type ofservice.

[0047]FIGS. 5 and 6 are a flow chart of a method 150 for processing aservice order for automatically making a reservation or appointment.Method 150 can be implemented in software modules within a server suchas system server 10. In method 150, the system server receives a requestfrom a requestor, such as requestor 12, for an order for service (step152). The request can be submitted from a user at a user device or froma server. The order for service involves a request for a reservation orappointment with an entity; the terms “reservation” and “appointment”are used interchangeably.

[0048] The system server determines whether to prompt the requester forservice information (step 154). Service information can include anyadditional information for use by the system server in making theappointment or reservation, and the system server can be programmedbased upon particular criteria to query the requestor for moreinformation. The querying can be based upon the type of request. Forexample, if the requestor has requested a restaurant reservation withoutspecifying a particular restaurant, the system server can query therequester for the type of restaurant and location desired. The queryingcan also be based upon user preferences for the requestor as stored inpersonal data 38.

[0049] If the system server requires more information from the requestor(step 156), it prompts the requester to obtain service information (step158) and receives service information from the requestor (step 160). Thetype of prompting or querying can be based upon the type of servicedesired and retrieved through linking the types of services withinformation required to process the request. The information can beretrieved through interaction at the user device and by using theconcepts as described above.

[0050] Based upon the request and service information, the system serverretrieves a protocol for fulfilling the order for service (step 162).The system server also determines if the request involves a category ofservice (step 164). A category involves the requestor making a requestfor a type of service rather than, for example, identifying a particularentity for the service. In comparison, the order for service canalternatively involve a request for a reservation or appointment with anidentified entity. The protocol can be selected based at least upon oneor more of the following: a selected category of service; a selectedservice provider; a selected type of other entity; or preferencesrelated to the requestor as stored, for example, in personal data 38.

[0051] Tables 2 and 3 illustrate how protocols can be indexed bycategories and entities, and stored in a database for retrieval by thesystem server. Although shown indexed in tables, the protocols can bestored in any type of data structure and linked in any way withcategories and entities. The protocols for categories can specify, asillustrated, one or more entities for the categories, and the protocolsfor each of those entities can be specified in the data structure asillustrated in Table 3. For using personal preferences, the systemserver can refine a selection of entities or categories, based upon thepreferences, before retrieving the appropriate protocols. TABLE 2category protocol category 1 protocol 1 (including entities 1 to m1)category 2 protocol 2 (including entities 1 to m2) . . . . . . categoryN protocol N (including entities 1 to mn)

[0052] TABLE 3 entity protocol entity 1 protocol 1 entity 2 protocol 2 .. . . . . entity N protocol N

[0053] If the request involves a category of service (step 166), thesystem server selects a set of entities according to the request andprotocol (step 168). With a requested category, fulfilling it mayinvolve contacting several entities. The system server also selects oneof the entities in the set to be contacted (step 174), and the protocol,possibly in combination with user preferences, can specify the order inwhich to contact the entities. Otherwise, if the request did not involvea category, the requestor identified a particular entity, and the systemserver selects one entity specified according to the request (step 170)and contacts the entity (step 172).

[0054] The protocol can specify how to contact and potentially requestservice from the entities for steps 172 and 174. For example, it canspecify phone or e-mail communication. Alternatively, identification ofthe selected entity in the case of a service provider can be used by thesystem server to retrieve instructions from the service providerdatabase concerning how to contact the service provider. For otherentities, the system server can access, for example, the database ofpersonal preferences or profiles for determining how to contact thoseentities.

[0055] The system server then queries the entity according to theprotocol (step 176). The querying uses concepts to obtain data forfulfilling the order for service, and the use of such concepts areexplained in the related applications identified above. The systemserver also determines if audible interaction is required (step 178),which can be determined through the protocol and information for serviceproviders in the service provider database or for other entities asspecified in the database or personal profiles or preferences. Theinteraction often involves audio interaction via a phone call. If audiointeraction is required, the system server converts a concept determinedfrom the protocol to corresponding audio through a text conversionmethod and presents the audio message (step 180). The conversion of textto audio for concepts is explained in the related application identifiedabove, and it can involve use of a computer-generated voice orprerecorded voice segments corresponding to the concept. For audiointeraction, the system server receives a voice response and converts itto a corresponding concept through a voice-to-concept conversion method(step 182). Voice-to-concept conversion techniques are also explained inthe related application identified above.

[0056] Otherwise, if audio interaction is not required, the systemserver sends to the entity a text message for the concept (step 184) andreceives a response (step 186). A non-audio interaction can involve, forexample, sending e-mail messages and receiving responsive e-mailmessages, or interaction via a web page for the entity. The protocol andinformation relating to the entity can determine the type of interactionand how to contact the entity such as by specifying a phone number ore-mail address for the entity.

[0057] Upon receiving a response to the query, the system serverconstructs a sentence to fulfill the response (step 188). Thisconstruction of a sentence can involve the use of concepts and relatedtechniques described in the related applications identified above. Thesystem server determines if the querying is complete according to theprotocol (step 190). If querying is not complete (step 192), the systemserver returns to step 176 to again query the entity according to theprotocol. The repeated querying can involve, for example, use of thenext concept for the sentence or the same concept if an acceptableresponse was not received.

[0058] The querying can also involve a type of negotiation with theentity or entities contacted by the system server presenting offers forreservations or appointments and in effect obtaining counter-offers. Forexample, if the requested time (offer) for a reservation is notavailable, the querying can involve obtaining an indication of the timesavailable (counter-offers) and then contacting the requestor todetermine if any of those times are acceptable. The negotiation caninclude automatic default alternatives for the requester, and thosealternatives can be determined, for example, through querying therequestor or from a personal profile of the requestor. For example, therequestor may indicate that a restaurant reservation within thirtyminutes of a specified reservation is an acceptable alternative.

[0059] The negotiation can also include multiple offers or queries madeto entities. For example, a requester may specify three sample times fora meeting, and the system server can query individuals with those threetimes to determine if everyone is available at one of the times. Thistype of negotiation also provides the advantage of helping to maintainprivacy of a requestor's schedule by using multiple times andpotentially dates rather than, for example, the requestor's preferred oronly time available.

[0060] The negotiation can also involve determining a sub-set of a groupof individuals available for an appointment at a particular time. Forexample, it can include determining whether a group of three individualsamong eight individuals are available for a particular tee time and dateat a golf course. Therefore, a negotiation, as specified and implementedby the protocols, can involve processing one or more offers, one or morecounter-offers, and groups of entities.

[0061] Once the querying is complete, as determined by the protocol(step 192), the system server determines whether to query another entity(step 194). This determination can be made through the protocol or fromhaving determined in step 164 that the request does not involve acategory; if no category is involved, the system server only had oneentity to query. If the system server has another entity to query (step196), it returns to step 174 to contact another entity from the set ofentities. It can determine the next one to select through, for example,the protocol. The system server then proceeds with querying the nextentity according to the protocol.

[0062] If there are no more entities to query (step 196), the systemserver has completed attempting to fulfill the order for service. As aresult, the system server has made the appointment or reservationthrough the querying or, alternatively, has determined that it cannotfulfill the request. The system server provides confirmation to therequestor (step 198). The confirmation can identify the entity, alongwith the time and date, for the reservation or appointment.Alternatively, it can provide notice to the requestor that thereservation or appointment could not be fulfilled, in which case thesystem server can potentially query the requestor to attempt to make analternate appointment or reservation. The confirmation can be providedin many different ways according to a default communication or asspecified by the requester preferences or profile; for example, theconfirmation can include a phone call, e-mail, or a text messagepresented on the requestor's user device.

[0063] Table 4 provides an example of a protocol for querying arestaurant to attempt to make a reservation. Table 5 provides theexample of a protocol for querying a group of individuals to determinethe first three among a group eight available for a particular tee timefor a golf outing; another protocol can be used, such as one similar tothat shown in Table 4, for contacting the golf course to obtain anavailable tee time for the three individuals. Table 6 provides anexample of a protocol for querying a group of individuals with multipletimes (offers) for scheduling a meeting. These examples also illustratethe type of negotiation that can occur through the protocols in order,for example, to determine a time available for the requested reservationor individuals available for the requested tee time. Also, the queryingand confirmation for these examples can use various types ofcommunications, as explained above, such as text, voice, e-mail, orother forms.

[0064] The exemplary protocols in Tables 4-6 are provided forillustrative purposes only, and many types of protocols are possibledepending upon, for example, types of requests for service, entities,and categories. Also, the types of requests for services shown in Tables4-6, and described above, are provided for illustrative purposes only,and many types of requests for service are possible; examples include,but are not limited to, requests for reservations or appointments forentertainment, travel, sports, recreation, and business-relatedpurposes. TABLE 4 Protocol for restaurant Y, reservation for two on dateX ASK: are you qualified to make reservations?; IF YES, continue; IF NO,ASK: can you get someone on the phone who is qualified?, repeat asnecessary; ASK: is a reservation available for 7:00 pm for two on dateX?; IF YES, continue to STATE step; IF NO, ASK: are there other timesavailable for date X?; IF YES, ASK: what are the other times available?;LISTEN: record key phrases for times available, end call; IF NO, endcall; STATE: please reserve a table for two at 7:00 pm on date X forREQUESTOR NAME; ASK: is everything complete?; IF YES, continue to REPORTstep; IF NO, ASK: what information is needed? LISTEN: record key phrasesto identify missing information IF TIME MISSING, STATE: 7:00 pm; IF DATEMISSING, STATE: date X; IF NUMBER MISSING, STATE: two; IF REQUESTOR NAMEMISSING, STATE: REQUESTOR NAME; RETURN to ASK (is everything complete?);REPORT TO REQUESTOR; IF RESERVATION MADE, STATE: you are confirmed for areservation for two at 7:00 pm on date X, end call; IF RESERVATION NOTMADE; IF ALTERNATE TIMES ARE AVAILABLE, STATE: the time you requestedwas not available, times ALTERNATE TIMES are available, do you want oneof those times? IF YES, ASK: which time?; LISTEN: record key phrase fortime; STATE: a reservation for that time will be attempted, end call;RETURN to ASK step (are you qualified . . . ); IF NO, end call.

[0065] TABLE 5 Protocol for tee time X on date Y at golf course Z forthree individuals among a group of individuals 1-8 CONTACT anindividual, starting with individual 1; ASK: are you available for a teetime X on date Y at golf course Z?; LISTEN: record indication of whetherthe individual is available; END CALL with the individual; ARE THREEINDIVIDUALS AVAILABLE?; IF YES, provide confirmation of the tee time tothe three available individuals; CONTACT AVAILABLE INDIVIDUALS, STATE: areservation has been confirmed for a tee time X on date Y at golf courseZ for AVAILABLE INDIVIDUALS; IF NO, HAVE ALL INDIVIDUALS BEENCONTACTED?; IF YES, provide cancellation of tee time to thoseindividuals who indicated availability; CONTACT AVAILABLE INDIVIDUAL(S),STATE: the reservation for tee time X on date Y at golf course Z hasbeen cancelled; IF NO, determine next individual to contact, RETURN toCONTACT an individual step.

[0066] TABLE 6 Protocol for scheduling a meeting using three availabletimes 1-3 on date X with individuals 1-3 CONTACT an individual, startingwith individual 1; ASK: are you available at times 1, 2, or 3 on date Xfor a meeting?; LISTEN: record indication of availability for theindividual; end call with the individual; HAVE ALL INDIVIDUALS BEENCONTACTED?; IF YES, IS THERE A MATCH WHEN ALL ARE AVAILABLE? IF YES,select first matching time; PROVIDE confirmation of matching time torequestor and all individuals; CONTACT REQUESTOR AND INDIVIDUALS, STATE:you are confirmed for a meeting on date X at MATCHING TIME; IF NO,report to requestor that no matching times are available; CONTACTREQUESTOR, STATE: no matching times were available for a meeting on dateX with the specified individuals; IF NO, determine next individual tocontact, RETURN to CONTACT an individual step.

[0067] While the present invention has been described in connection withan exemplary embodiment, it will be understood that many modificationswill be readily apparent to those skilled in the art, and thisapplication is intended to cover any adaptations or variations thereof.For example, various types of user devices, hardware components for thedevices and servers, and types of network transmissions may be usedwithout departing from the scope of the invention. This invention shouldbe limited only by the claims and equivalents thereof.

What is claimed is:
 1. A method for providing automated reservations andappointments for users, comprising: receiving a request for an order forservice from a requestor; receiving service information for use infulfilling the order; selecting a protocol for use in querying an entitybased upon the service information; querying the entity according to theprotocol; and providing the ordered service based upon responses to thequerying.
 2. The method of claim 1 wherein the receiving the requeststep includes receiving the request from a user device.
 3. The method ofclaim 1 , further including: receiving audible responses to thequerying; and converting the audible responses into correspondingconcepts.
 4. The method of claim 1 wherein the receiving the requeststep includes receiving the request from a server.
 5. The method ofclaim 1 , further including prompting the requestor to select between anentity and a category of service for the service information.
 6. Themethod of claim 1 wherein the selecting step includes selecting theprotocol based upon at least one of the following: a selected categoryof service, a selected entity, or preferences related to the requester.7. The method of claim 1 wherein the querying step includes: selectingconcepts according to the protocol; and converting the concepts tocorresponding audio segments for presentation to the entity.
 8. Themethod of claim 1 wherein the querying step includes: selecting conceptsaccording to the protocol; and presenting text segments to the entitybased upon the concepts.
 9. The method of claim 1 , further includingproviding to the requestor confirmation of the ordered service.
 10. Themethod of claim 5 wherein the selecting step includes identifying aplurality of entities to query based upon the category of service. 11.An apparatus for providing automated reservations and appointments forusers, comprising: a request module for receiving a request for an orderfor service from a requestor; a receive module for receiving serviceinformation for use in fulfilling the order; a select module forselecting a protocol for use in querying an entity based upon theservice information; a query module for querying the entity according tothe protocol; and a provide module for providing the ordered servicebased upon responses to the querying.
 12. The apparatus of claim 11wherein the request module includes a module for receiving the requestfrom a user device.
 13. The apparatus of claim 11 , further including: amodule for receiving audible responses to the querying; and a module forconverting the audible responses into corresponding concepts.
 14. Theapparatus of claim 11 wherein the request module includes a module forreceiving the request from a server.
 15. The apparatus of claim 11 ,further including a module for prompting the requestor to select betweenan entity and a category of service for the service information.
 16. Theapparatus of claim 11 wherein the select module includes a module forselecting the protocol based upon at least one of the following: aselected category of service, a selected entity, or preferences relatedto the requestor.
 17. The apparatus of claim 11 wherein the query moduleincludes: a module for selecting concepts according to the protocol; anda module for converting the concepts to corresponding audio segments forpresentation to the entity.
 18. The apparatus of claim 11 wherein thequery module includes: a module for selecting concepts according to theprotocol; and a module for presenting text segments to the entity basedupon the concepts.
 19. The apparatus of claim 11 , further including amodule for providing to the requestor confirmation of the orderedservice.
 20. The apparatus of claim 11 wherein the select moduleincludes a module for identifying a plurality of entities to query basedupon the category of service.